package com.jz.netthings.application.heatseal.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.jz.netthings.application.heatseal.bean.HeatSeal;
import com.baomidou.mybatisplus.service.IService;
import com.jz.netthings.application.heatseal.bean.HeatSealData;
import com.jz.netthings.application.heatseal.bean.PlasmaStockPrintSupport;
import com.jz.netthings.bean.system.JyUser;
import com.jz.netthings.exception.AdscmSystemException;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 热合表 服务类
 * </p>
 *
 * @author lzf
 * @since 2019-03-18
 */
public interface HeatSealService extends IService<HeatSeal> {

    Page<HeatSeal> queryAll(Integer currentPage, Integer pageSize);

    HeatSeal queryByid(String id) throws AdscmSystemException;

    Page<HeatSeal> queryByPNoAndMNo(String pid, String mid, String sTime,Integer currentPage,Integer pageSize,String id) throws AdscmSystemException;

    /**
     * 更新血浆入库信息，生成血血浆编码，同时返回完整的血浆入库信息
     * 如果heatSeal 数据中存在血浆编码，则不重新生成血浆编码
     * @param heatSeal
     * @param user
     * @return
     * @throws AdscmSystemException
     */
    HeatSealData updateHeatSeal(HeatSeal heatSeal, JyUser user) throws AdscmSystemException;

    /**
     * 根据入库日期，查询入库箱号集合
     * @param startDate
     * @param endDate
     * @return
     */
    List<Map<String,String>> getHeatSealBoxByDate(String startDate, String endDate) throws AdscmSystemException;
    /**
     * 根据箱号，查询入库记录
     * @param boxCode
     * @return
     */
    PlasmaStockPrintSupport getStockByBox(String boxCode) throws AdscmSystemException;
}
